#encoding:utf-8

import socket
import host_ip as hi
import data_conversion as dc
def Data_Val(*self):
	s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#family:套接字家族AF_UNIX与AF_INET,
#type:套接字类型面向连接SOCK_STREAM,非连接SOCK_DGRAM
#host = socket.gethostname()
	host = '193.112.152.28'			#服务器ip
	port = 37777					#服务器端口
	try:
		s.connect((host,port))			#初始化服务器连接
	except ConnectionRefusedError:
		svr_error = '与服务器连接失败,请检查网络'
		return svr_error
	else:
		var = s.recv(102400)		#接收服务器最大100k数据
		var = var.decode()			#将字符串解码
		if var == '连接成功':		#判断是否连接成功
			ip = hi.get_host_ip()	#获取本机IP
			ip1 = ip.encode()		#将IP转码
			s.sendall(ip1)			#发送转码后的ip到服务器
			#v = str(len(self[0]))	#获取第一个元组的宽度
			#self = v + self[0] + self[1]#重新生成一个字符串
			cl_da = self
			cl_data = dc.Data_conding(cl_da)
			string = cl_data.encode()		#获取转码后的字符串
			s.sendall(string)			#发送数据到服务器
			var3 = s.recv(102400)	#从服务器接收数据
			x = var3.decode()		#将接收的数据解码
			return x				#返回数据到客户端
		else:
			return var
	s.close()						#关闭套接字


if __name__ == '__main__':
	Data_Val()